package com.xique.park.bean.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 退款订单实体类
 *
 * @author WLD
 */
@Data
public class RefundOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    /**
     * 项目ID
     */
    private Long parkId;

    /**
     * 车牌
     */
    private String plate;

    /**
     * 支付序列号
     */
    private String paySsn;

    /**
     * 退款单ID
     */
    private String refundId;

    /**
     * 退款原因
     */
    private String refundReason;

    /**
     * 订单编号
     */
    private String orderNo;

    /**
     * 停车流水号
     */
    private String parkingSerial;

    /**
     * 订单金额（分）
     */
    private BigDecimal orderAmount;

    /**
     * 申请退款金额（分）
     */
    private BigDecimal applyAmount;

    /**
     * 实际退款金额（分）
     */
    private BigDecimal trxAmount;

    /**
     * 退款申请日期
     */
    private Date applyTime;

    /**
     * 退款完成日期，yyyy-MM-dd HH：mm：ss
     */
    private Date completeDateTime;

    /**
     * 退款单状态
     * <p>
     * 00-受理失败
     * 01-受理成功
     * 02-退款中
     * 03-退款成功
     * 04-退款失败
     */
    private String refundStatus;

    /**
     * 退款方式 - 同支付方式，原路退回
     * <p>
     * 01:工银 e 支付
     * 02:微信支付
     * 03:支付宝
     * 04:预付卡
     * 05:转账
     * 06:二维码主扫支付
     * 07:POS支付
     * 08:e支付有协议小额免密
     * 09:微信线下支付
     * 10:会员卡小额免密
     * 11:支付宝线下支付
     * 12:二维码被扫支付
     * 13:合作方钱包支付
     * 99:其他
     */
    private String refundMethod;

    /**
     * 退款提示信息
     */
    private String refundMsg;

    /**
     * 工行优惠退款金额（分）
     */
    private BigDecimal icbcDiscountAmount;

    /**
     * 工行父退款号(合并退款以子退款单维度通知时，该字段为父退款单号，其它时为空)
     */
    private String icbcParentRefundId;

    /**
     * 工行退款单号
     */
    private String icbcRefundId;

    /**
     * 退款申请创建人
     */
    private Long createUser;

    /**
     * 操作人姓名
     */
    @TableField(exist = false)
    private String updateBy;

    @TableField(exist = false)
    private Long num;

    @TableField(exist = false)
    private Long successNum;

    @TableField(exist = false)
    private BigDecimal totalRefundAmount;
}
